SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Webseiten professionell erstellen

Webseiten professionell erstellen zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > MySQLi/PDO/(MySQL)

MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 14.11.2004, 14:14:09
MrBadGuy MrBadGuy ist offline
Anfänger
 
Registriert seit: Nov 2004
Beiträge: 8
explode werte per mysql_query laden

Hallo!

Habe ein Problem was mir ziemliches Kopfzerbrechen seit tagen beschert, hoffe ihr könnt mir helfen, schonmal Danke im vorraus.

Es geht im prinzip darum das in einen Mysql_query aus einer tabelle alle werte ausgelesen werden bei denen (where) die id = array ist.

das array kam zustande weil der wert aus der Tabelle für das array ($kid) in dem Format ist : "1|5|4 ", nun hab ich mit explode die "|" entfernen lassen, raus kommt logischerweise ($kid_array= "154" ).

Bei der nächsten myql_query anfrage soll er nun die tabellen zeilen laden bei denen (where) die id aus der zeile = $kidarray ist, also soll er so gesehen die zeilen laden die die id = 1 , id = 5 und die id = 4 haben, aber das macht der irgendwie nicht , bin am verzweifeln, hoffe ich hab es gut erklärt, ist ziemlich kompliziert.


Hier ist der code:

<?


$result1 = mysql_query("select * from s_kategorien where id = {$HTTP_GET_VARS['kategorie']}");
while ($row = mysql_fetch_object($result1))
{
$kid = $row->kid;



$kid_array = explode("|",$kid);
for ($i=0; $i<count($kid_array); $i++)


$result = mysql_query("select * from s_unterkategorien where id = '$kid_array[$i]' order by name LIMIT {$HTTP_GET_VARS['start']}, $ds_anzahl");
while ($row = mysql_fetch_object($result))


{
$id = $row->id;
$kategorie1 = $row->kategorie;
$artikelnummer = $row->artikelnummer;
$name = $row->name;
$beschreibung = $row->beschreibung;
$bild = $row->bild;
$preis = $row->preis;
$preis_vorzeichen = $row->preis_vorzeichen;
$status = $row->status;
$variante1 = $row->variante1;
$variante2 = $row->variante2;
$variante3 = $row->variante3;
$variante4 = $row->variante4;
$variante5 = $row->variante5;
$variante6 = $row->variante6;
$variante7 = $row->variante7;
$variante8 = $row->variante8;
$variante_a = $row->variante_a;
$variante_b = $row->variante_b;

$preis = number_format($preis,2,",",".");


?>
Mit Zitat antworten
  #2  
Alt 14.11.2004, 14:31:49
feuervogel feuervogel ist offline
SELFPHP Guru
 
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
willkommen im forum!

auch wenn du neu bist, darfst du die [php]-tags für mehrere zeilen code benutzen.

hast du mal

echo "select * from s_unterkategorien where id = '$kid_array[$i]' order by name LIMIT {$HTTP_GET_VARS['start']}, $ds_anzahl"

echo gemacht?

zweitens: wieso {$HTTP_GET_VARS['start']}, aber '$kid_array[$i]' ? da fehlen m.e. nach {}.

drittens: du schreibst schlüsselworte in deinen sql-abfragen mal groß, mal klein...das ist nicht grade übersichtlich...

viertens: warum so umständlich:

for ($i=0; $i<count($kid_array); $i++)

?

foreach( $kid_array as $value )

tuts auch.

fünftens: mal auf einen sql-error geprüft?
Mit Zitat antworten
  #3  
Alt 14.11.2004, 15:13:35
MrBadGuy MrBadGuy ist offline
Anfänger
 
Registriert seit: Nov 2004
Beiträge: 8
Also hab deine Vorschläge mal zu herzem genommen, danke schonmal

Jetzt ist es so:
Er lädt jetzt immer nur die zeile die mit der letzten zahl aus dem array übereinstimmt, also bei zb. |1|2|3 lädt er die zeile mit der id=3 aus der tabelle und bei zb. |1|2|4 lädt er eben der nur die zeile aus der tabelle bei der die id = 4 ist.

Aber es sollte ja so sein das er alle zeilen mit der id läd und nicht nur immer die ,die mit der letzten übereinstimmt. hoffe ihr könnt mir helfen!

so sieht der veränderte php code nun aus:
PHP-Code:
<?


$result1 = mysql_query("select * from s_kategorien where id = {$HTTP_GET_VARS['kategorie']}");
while ($row = mysql_fetch_object($result1))
{
       $kid = $row->kid;



$kid_array = explode("|",$kid);
foreach( $kid_array as $value );




                               
                $result = mysql_query("select * from s_unterkategorien where id = '{$value}' order by name LIMIT {$HTTP_GET_VARS['start']}, $ds_anzahl");
                while ($row = mysql_fetch_object($result))

    
                        {
                                $id                        = $row->id;
                                $kategorie1     = $row->kategorie;
                                $artikelnummer  = $row->artikelnummer;
                                $name           = $row->name;
                                $beschreibung   = $row->beschreibung;
                                $bild                    = $row->bild;
                                $preis                    = $row->preis;
                                $preis_vorzeichen                    = $row->preis_vorzeichen;
                                $status                    = $row->status;
                                $variante1            = $row->variante1;
                                $variante2            = $row->variante2;
                                $variante3           = $row->variante3;
                                $variante4           = $row->variante4;
                                $variante5           = $row->variante5;
                                $variante6           = $row->variante6;
                                $variante7           = $row->variante7;
                                $variante8           = $row->variante8;
                                $variante_a           = $row->variante_a;
                                $variante_b           = $row->variante_b;

                                $preis                         = number_format($preis,2,",",".");

            
                ?>
Mit Zitat antworten
  #4  
Alt 14.11.2004, 15:30:16
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
In der zweiten While-Schleife speicherst du die Ergebnisse der MySQL-Abfrage in dem Objekt $row. Das ist nicht sonderlich sinnvoll, da somit das Objekt der ersten While-Schleife überschrieben wird.

Hier mal der modifizierte Code.

Dann noch ein paar Sachen:
- Warum soll ich nicht SELECT * schreiben?
- Was soll die ganzen überflüssigen Leerzeilen?
- Wo sind die fehlenden schließenden geschweiften Klammern?
- Einrücken steigert die Lesbarkeit des Quelltextes ungemein.
- Auch MySQL-Queries kann man einrücken.
Mit Zitat antworten
  #5  
Alt 14.11.2004, 15:45:50
MrBadGuy MrBadGuy ist offline
Anfänger
 
Registriert seit: Nov 2004
Beiträge: 8
VIELEN DANK !!!!!


es funzt nun wunderbar :) ihr steht nun alle in meinen buch der coolen leute heheh ;)

Ich wäre nicht draufgekommen das der die werte der §row überschreibt, ist zwar logisch aber hätt ich nicht dran gedacht :) DANKE!

Deine Vorschläge werd ich mir auch merken, die geschweiften Klammern aber hatte ich schon nur ich hab euch nur einen auszug aus meinen gesamt code gezeigt, deswegen hast du die geschweiften klammern net gesehen weil die ja am ende waren.

ok nochmal vielen dank ^^
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:16:32 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt