[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
selektive Abfrage - REDAXO Forum
Hallo,

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
aart
Beiträge: 97
Registriert: 24. Aug 2004, 22:11
Kontaktdaten: ICQ

selektive Abfrage

9. Dez 2005, 17:55

moin,

irgendwie steh ich auf dem schlauch ...

er bringt keinen fehler aber auch kein ergebnis - er zeigt immer den ersten datensatz an?!?!

vermutlich mein prob:
wie muss das datenfeld im formular heissen, damit ich einen datensatz durch eingabe nachname auslesen, und auf derselben seite nach submit die ergebnisse in einer liste/tabelle anzeigen lassen kann?
(XAMPP, localhost, redaxo 3.1)

uebrigens:
weiter unten alle eintraege anzeigen klappt einwandfrei!!??

Code: Alles auswählen

echo "<form action=index.php method=post name=formular>";
echo "<input type=hidden name=article_id value=27>";
echo "<input type=hidden name=FORM[send] value=1>";

echo "<p>Name: <input type=text name=FORM[last_name]></p>";
echo "<p><input type=submit name=Suchen value=Submit></p>";

//hier XAMPP-localhost-DB-Connect-Daten [entfernt]

if (isset($_POST)) {
     reset($_POST);
     foreach($_POST as $key=>$element) {
          ${"$key"} = $element;
     }
     echo "Name: $last_name<br />";
     echo "Datum: $datum<br />";
}

$query = "SELECT * FROM test_db";
$result = mysql_query($query) or die("Abfrage fehlgeschlagen: " . mysql_error());

if (!$result) {
    echo 'Abfrage konnte nicht ausgeführt werden: ' . mysql_error();
    exit;
}
$row = mysql_fetch_row($result);

echo $row[0].": ".$row[1]."&nbsp;vom: ".date("d.m.Y",$row[2])."<br>";


// *** alle eintraege auflisten ***

$query2 = "SELECT * FROM test_db";
$result2 = mysql_query($query2) or die("Anfrage fehlgeschlagen: " . mysql_error());

echo "<table>\n";
while ($line = mysql_fetch_array($result2, MYSQL_ASSOC)) {
echo "\t<tr>\n";
foreach ($line as $col_value) {
echo "\t\t<td>$col_value</td>\n";
}
echo "\t</tr>\n";
}
echo "</table>\n";

mysql_free_result($result2);
mysql_close($link);

wer schubbst mich vom schlauch?? :?

gruss
aart

Benutzeravatar
Markus.Staab
Entwickler
Beiträge: 9634
Registriert: 29. Jan 2005, 15:50
Wohnort: Aschaffenburg/Germany
Kontaktdaten: ICQ Website

9. Dez 2005, 19:39

Hi aart,

für deine Abfragen solltest du die SQL Klasse von redaxo verweden!

Ausserdem fehlt in deinen Abfragen die entsprechende WHERE Bediengung für die einschränkende Suche.

Gruß,
Markus

aart
Beiträge: 97
Registriert: 24. Aug 2004, 22:11
Kontaktdaten: ICQ

14. Dez 2005, 15:59

hi,
mit folgenden code versuch ich aus 'test_table' eine liste zu bekommen, wenn der eingegebene nachname gefunden wird (es soll auch aktuelles datum geschrieben werden); wenn nix, dann nix.

Code: Alles auswählen

<?php
//Funktion
function search_user( $last_name ) {
 if( $last_name == '') {
   return 'Bitte f&uuml;llen Sie das Feld "Nachname" aus!';
 }

 $sql = new sql();

 $qry = 'SELECT id FROM test_table WHERE last_name = "'. $last_name .'"';
 $sql->setQuery($qry);
 if ( $sql->getRows() > 0) {
 $qry = 'UPDATE test_table SET datum=UNIX_TIMESTAMP() WHERE last_name = "'. $last_name .'"';
 } else {
      echo "nix";
 }

 $sql->setQuery($qry);

 return $sql->getError() == '';
}


//Formularauswerten
$message = '';
if ( !empty($_POST['suchen'])) 
{
 $result = search_user( $_POST['last_name'] );
 if ( $result === true) 
  {
     $message .= 'Benutzer wurde gefunden!';
                  
                  echo "
                  <table border=1>
                  <tr>
                  	<td>Vorname</td>
                  	<td>Nachname</td>
                  	<td>Datum</td>
                  </tr>
                  ";
                  
                  while ($row = mysql_fetch_array($result)) {
                  extract($row);
                  
                  echo "
                  <tr>
                  	<td>$first_name</td>
                  	<td>$last_name</td>
                  	<td>$datum</td>
                  </tr>
                  ";
                  }
                  echo "</table>";

  } else {
     $message .= $result . '<br/>Konnte <b>nicht</b> gefunden werden!';
  }
}


//Formular
if ( $message != '') {
  echo '<h2>'. $message .'</h2>';
}
?>

<h1>Suchen</h1>
<form action="index.php" method="post">
  <input type="hidden" name="article_id" value="REX_ARTICLE_ID"/>
  <div><label for="last_name">Nachname:</label></div>
  <div><input type="text" name="last_name" id="last_name"/></div>
  <input type="submit" name="suchen" value="Suchen" />
</form>
aaaaber:

Code: Alles auswählen

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in E:\xampp\htdocs\xampp\sqltest\redaxo\include\classes\class.article.inc.php(174) : eval()'d code on line 47
Benutzer wurde gefunden!
Suchen
Nachname:
Obwohl Benutzer wurde gefunden! angezeigt wird, kommt drüber der Fehler :-(
Kann mir jmd. helfen, wo mein Fehler liegt?

Zeile 47 ist: while ($row = mysql_fetch_array($result)) {

gruss
aart

aart
Beiträge: 97
Registriert: 24. Aug 2004, 22:11
Kontaktdaten: ICQ

15. Dez 2005, 13:09

hi,
kann mir denn niemand n tipp geben?
ich habe jeds mal die ausgabe von $qry und $sql anzeigen lassen, ergebnis:
gebe ich im suchfeld "name" ein, erscheint:

Code: Alles auswählen

SELECT id FROM test_table WHERE last_name = "name"
Object id #10
Benutzer wurde gefunden!
gebe ich im suchfeld "anderername" ein, erscheint:

Code: Alles auswählen

SELECT id FROM test_table WHERE last_name = "anderername"
Object id #10
Benutzer wurde gefunden!
die "Object id #10" macht mich stutzig, is ja n anderer datensatz?!?!

kann mir jmd. sagen, wie der code lauten muss, um zeilenweise die gefundenen treffer aus der redaxo-tabelle auszugeben? ich komm einfach nich ran :-(

gruss
aart

Benutzeravatar
Markus.Staab
Entwickler
Beiträge: 9634
Registriert: 29. Jan 2005, 15:50
Wohnort: Aschaffenburg/Germany
Kontaktdaten: ICQ Website

15. Dez 2005, 15:47

Hi aart,
aart hat geschrieben:

Code: Alles auswählen

SELECT id FROM test_table WHERE last_name = "name"
Object id #10
Benutzer wurde gefunden!
gebe ich im suchfeld "anderername" ein, erscheint:

Code: Alles auswählen

SELECT id FROM test_table WHERE last_name = "anderername"
Object id #10
Benutzer wurde gefunden!
die "Object id #10" macht mich stutzig, is ja n anderer datensatz?!?!
Die #10 ist die ID des Objektes, nicht des Datensatzes in der Datenbank.

Code: Alles auswählen

                  while ($row = mysql_fetch_array($result)) {
                  extract($row);
Warum machst du hier mysql_fetch_array()?

dieses $result wird doch nirgendends via mysql_result() erzeugt?

Ausserdem solltest du ja hier, die SQL Klasse verwenden.

Gruß,
Markus

aart
Beiträge: 97
Registriert: 24. Aug 2004, 22:11
Kontaktdaten: ICQ

15. Dez 2005, 16:20

hi markus,

ich habs hinbekommen, danke.

trotzdem bitte nochmal ein beispiel, was meinst du mit "SQL Klasse" verwenden!?? :?

andere frage:
wie genau stelle ich es an, als letztes feld in meiner treffer-ausgabeliste (der nur vorname, name enthält) einen "detail"-link anzugeben, der nichts anderss macht, als den kompletten datensatz anzuzeigen.

thx
aart

Benutzeravatar
Markus.Staab
Entwickler
Beiträge: 9634
Registriert: 29. Jan 2005, 15:50
Wohnort: Aschaffenburg/Germany
Kontaktdaten: ICQ Website

15. Dez 2005, 16:28

HI aart,
aart hat geschrieben:hi markus,

ich habs hinbekommen, danke.

trotzdem bitte nochmal ein beispiel, was meinst du mit "SQL Klasse" verwenden!?? :?
z.b.

Code: Alles auswählen

$sql = new sql();
$sql->setQuery( 'SELECT * FROM rex_article');

for ( $i = 0; $i < $sql->getRows(); $i++) {
  $status = $sql->getValue('status');
  // mach irgendwas ...
  $sql->next();
}
anstatt diese geschichte mit mysql_connect(), mysql_query(), mysql_fetch_row(),...
andere frage:
wie genau stelle ich es an, als letztes feld in meiner treffer-ausgabeliste (der nur vorname, name enthält) einen "detail"-link anzugeben, der nichts anderss macht, als den kompletten datensatz anzuzeigen.
Hast du keine Benutzer ID in der Tabelle?

Diese einfach mit selektieren und übergeben...

Gruß,
Markus

aart
Beiträge: 97
Registriert: 24. Aug 2004, 22:11
Kontaktdaten: ICQ

20. Dez 2005, 12:49

hi kills,

doch, hab eine id.

gebe vorname und name aus, darunter (oder besser daneben) der detaillink, der den kompletten datensatz ausgeben soll.

bekomms nicht hin.
wie ruf ich den datensatz auf um den im link kompletten zu uebergeben/anzuzeigen??

Code: Alles auswählen

<a href="??">Detail</a>
danke dir schonmal

grus
aart

Benutzeravatar
Thomas.Blum
Entwickler
Beiträge: 5063
Registriert: 24. Aug 2004, 22:11
Wohnort: Dresden
Kontaktdaten: Website

20. Dez 2005, 14:03

Hej,

wenn du den Artikellink meinst dann so:

<a href="'.rex_getUrl($sql->getValue("id")).'">

Thomas

aart
Beiträge: 97
Registriert: 24. Aug 2004, 22:11
Kontaktdaten: ICQ

20. Dez 2005, 16:15

hi tbaddade,

ich meine, die komplett-ausgabe des datensatzes, dessen 'detaillink' angeklickt wird.

genauer:
trefferliste zeigt "vorname, name" (detaillink)
detailseite soll "vorname, name, strasse, plz, ort" anzeigen.

gruss
aart

Benutzeravatar
Thomas.Blum
Entwickler
Beiträge: 5063
Registriert: 24. Aug 2004, 22:11
Wohnort: Dresden
Kontaktdaten: Website

20. Dez 2005, 16:28

hej aart,

hast du eigene tabellen in der db oder bezieht sich das nur auf redaxo-tabellen?

in welchem feld stehen denn starße, plz,ort, name usw.?

thomas

aart
Beiträge: 97
Registriert: 24. Aug 2004, 22:11
Kontaktdaten: ICQ

20. Dez 2005, 16:33

hi tbaddade,

habe ne separate tabelle, die adressen enthaelt.
feldnamen: first_name,last_name,strasse,plz,ort

gruss
aart

Benutzeravatar
Markus.Staab
Entwickler
Beiträge: 9634
Registriert: 29. Jan 2005, 15:50
Wohnort: Aschaffenburg/Germany
Kontaktdaten: ICQ Website

20. Dez 2005, 21:44

Hi

Wo ist die Benutzer ID der Tabelle, von der du gesprochen hast?

Wegen der Detail/List View:
schau mal nach, wie ich das in der SimpleGallery gelöst habe, so kannst du beides in ein Modul packen.

Gruß,
Markus

aart
Beiträge: 97
Registriert: 24. Aug 2004, 22:11
Kontaktdaten: ICQ

21. Dez 2005, 13:12

hi kills,

du hast recht; aber ich habe nur in der aufzaehlung die 'id' vergessen; es gibt sie in der tabelle ...

danke fuer den tipp mit SimpleGallery, schau ich mir an.

gruss
aart

Benutzeravatar
svenalbert
Beiträge: 1308
Registriert: 24. Nov 2005, 17:21
Wohnort: Clausthal-Zellerfeld / lower saxony
Kontaktdaten: ICQ Website

21. Dez 2005, 14:54

mach doch für die detailseite nochmal eine neue db-abfrage, wo du einfach über den detaillink nur die id von deinem datensatz übergibst.

also ala

select vorname name usw.
from tabelle
where id=$die_id_die_im_link_übergeben_worden_ist


mußt dir halt nur in deiner übersicht die id quasi blind mit ausgeben lassen und im link verwursten.

Oder verkenne ich das problem?

Sven

aart
Beiträge: 97
Registriert: 24. Aug 2004, 22:11
Kontaktdaten: ICQ

21. Dez 2005, 16:52

hi sven,

problem erkannt; lediglich die schnelle umsetzung bereitet mir probleme.
kannst mir n codeschnipsel zeigen?

gruss
aart

Benutzeravatar
svenalbert
Beiträge: 1308
Registriert: 24. Nov 2005, 17:21
Wohnort: Clausthal-Zellerfeld / lower saxony
Kontaktdaten: ICQ Website

21. Dez 2005, 17:44

[EDIT] ich hab es nochmal geändert, es ist wohl doch sinnvoller, die zu übergebenden werte in einem eingeben zu können.

also das &theo=wert
[/EDIT]



also, ich hab das modul "interner link" ein bissel verändert.

muß thomas oder markus nochma schauen ob das so geht.
bei mir fabriziert es einen link


h ttp://w ww.irgendwas.de/index.php?article_id=5&theo=wert


das theo (als name für die variable, die man auf der ergebnisseite weiterverwenden will), kann man eingeben. das gleiche kann man bestimmt auch ohne probleme noch für wert machen.




Eingabe:

Code: Alles auswählen

interner Link:<br /> 
REX_LINK_BUTTON[1]<br /><br />

Link Text der zu sehen ist:<br /> 
<input type=text size=80 name=VALUE[1] value="REX_VALUE[1]"><br /><br />

Name(n) und wert(e) der zu übergebenden Variable<br />
Format: &var1=wert1&var2=wert2 usw.<br />
wertx kann auch eine Variable sein.<br />
<input type=text size=40 name=VALUE[2] value="REX_VALUE[2]"><br /><br />

Ausgabe:

Code: Alles auswählen

<?php

if ("REX_LINK[1]") {
	print '<p><a href="'."REX_LINK[1]".'&'."REX_VALUE[2]".'" title="'."REX_VALUE[1]".'" alt="'."REX_VALUE[1]".'">'."REX_VALUE[1]".'</a></p>';
}

?>



auf deiner ergebnisseite mußte dann nur


select ...
from tabelle
where id = $theo

Zurück zu „Sonstiges“